podatki <- read.table("/cloud/project/Poglavje 6/Naloga 1/Države.csv", header=TRUE, sep=";", dec="," )
print(podatki)
##         Država    A    B    C    D   BDP Brezpos Regija
## 1     Avstrija  3.3 16.1 32.3 23.3 38110     4.3      2
## 2      Belgija  1.2 11.6 25.9 30.5 36090     5.3      2
## 3    Bolgarija 16.9 20.0 30.6 15.8  6630     4.1      3
## 4        Češka  2.9 28.8 28.2 18.3 18460     2.0      3
## 5        Ciper  3.4  9.3 39.3 19.6 25370     6.0      1
## 6       Danska  2.3 10.8 32.4 30.2 49270     4.9      4
## 7     Estonija  3.1 20.1 31.4 22.3 15510     4.5      3
## 8       Finska  3.4 14.0 26.2 28.8 37150     6.6      4
## 9     Francija  2.6 10.2 29.1 29.3 33320     8.2      2
## 10      Grčija 10.9  9.5 37.5 22.0 17760    16.5      1
## 11     Hrvaška  6.2 21.0 32.4 22.2 12700     6.1      3
## 12       Irska  4.5 11.1 36.2 25.6 60130     4.8      2
## 13   Islandija  3.5 12.1 33.4 28.5 39160     3.2      4
## 14     Italija  3.6 16.8 31.0 18.8 27210     9.8      1
## 15     Latvija  7.3 15.8 32.8 20.5 12530     6.6      3
## 16       Litva  6.4 18.0 31.3 22.9 14050     6.4      3
## 17  Luksemburg  0.8  8.1 37.9 20.7 85030     5.7      2
## 18   Madžarska  4.0 21.2 29.0 21.1 13270     3.4      3
## 19       Malta  1.4 10.7 35.9 22.5 22730     3.4      1
## 20     Nemčija  1.3 18.5 28.0 25.0 35980     3.2      2
## 21  Nizozemska  2.1  9.2 30.4 26.4 41980     3.0      2
## 22    Norveška  2.3 11.0 27.1 35.9 69490     3.7      4
## 23     Poljska  9.2 24.1 27.9 20.3 13020     2.9      3
## 24 Portugalska  8.1 17.1 29.5 20.6 18670     6.9      1
## 25    Romunija 21.8 21.6 26.5 13.8  9120     3.9      3
## 26    Slovaška  3.0 23.9 30.7 19.9 15890     5.7      3
## 27   Slovenija  6.9 23.2 26.8 18.5 20720     4.7      3
## 28     Španija  3.9 11.3 34.1 22.1 25200    13.7      1
## 29     Švedska  1.9 12.2 25.8 33.6 44180     7.0      4
## 30       Švica  2.6 14.0 29.3 24.5 62800     2.6      2
## 31          UK  1.2  9.0 33.6 24.7 32910     3.9      2

Opis spremenljivk:

rownames(podatki) <- podatki$Država

podatki$RegijaF <- factor(podatki$Regija, 
                          levels = c(1, 2, 3, 4), 
                          labels = c("J", "Z", "V", "S"))
summary(podatki[c(-1, -8)]) 
##        A                B               C               D        
##  Min.   : 0.800   Min.   : 8.10   Min.   :25.80   Min.   :13.80  
##  1st Qu.: 2.300   1st Qu.:10.90   1st Qu.:28.10   1st Qu.:20.40  
##  Median : 3.400   Median :14.00   Median :30.70   Median :22.30  
##  Mean   : 4.903   Mean   :15.49   Mean   :31.05   Mean   :23.49  
##  3rd Qu.: 6.300   3rd Qu.:20.05   3rd Qu.:33.10   3rd Qu.:26.00  
##  Max.   :21.800   Max.   :28.80   Max.   :39.30   Max.   :35.90  
##       BDP           Brezpos       RegijaF
##  Min.   : 6630   Min.   : 2.000   J: 6   
##  1st Qu.:15700   1st Qu.: 3.550   Z: 9   
##  Median :25370   Median : 4.800   V:11   
##  Mean   :30788   Mean   : 5.581   S: 5   
##  3rd Qu.:38635   3rd Qu.: 6.500          
##  Max.   :85030   Max.   :16.500
podatki_clu_std <- as.data.frame(scale(podatki[c("A", "B", "C", "D")]))
library(factoextra) 
get_clust_tendency(podatki_clu_std, 
                   n = nrow(podatki_clu_std) - 1,
                   graph = FALSE) 
## $hopkins_stat
## [1] 0.6777631
## 
## $plot
## NULL
library(dplyr) 
WARD <- podatki_clu_std %>%
  get_dist(method = "euclidean") %>%  
  hclust(method = "ward.D2")      

WARD
## 
## Call:
## hclust(d = ., method = "ward.D2")
## 
## Cluster method   : ward.D2 
## Distance         : euclidean 
## Number of objects: 31
library(factoextra)
fviz_dend(WARD)
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use
## `guides(<scale> = "none")` instead.

podatki$RazvrstitevWARD <- cutree(WARD, 
                                  k = 4)

head(podatki[c("RazvrstitevWARD")])
##           RazvrstitevWARD
## Avstrija                1
## Belgija                 2
## Bolgarija               3
## Češka                   1
## Ciper                   4
## Danska                  2
library(factoextra) 
MetodaVod <- hkmeans(podatki_clu_std, 
                     k = 4,
                     hc.metric = "euclidean",
                     hc.method = "ward.D2")

MetodaVod
## Hierarchical K-means clustering with 4 clusters of sizes 13, 9, 2, 7
## 
## Cluster means:
##            A          B          C          D
## 1  0.0259099  0.8749232 -0.2565529 -0.4842167
## 2 -0.5339514 -0.6868933 -0.5961994  1.2429221
## 3  3.1231623  0.9552372 -0.6758510 -1.7270840
## 4 -0.2539416 -1.0146337  1.4360977 -0.2053305
## 
## Clustering vector:
##    Avstrija     Belgija   Bolgarija       Češka       Ciper 
##           1           2           3           1           4 
##      Danska    Estonija      Finska    Francija      Grčija 
##           2           1           2           2           4 
##     Hrvaška       Irska   Islandija     Italija     Latvija 
##           1           4           2           1           1 
##       Litva  Luksemburg   Madžarska       Malta     Nemčija 
##           1           4           1           4           1 
##  Nizozemska    Norveška     Poljska Portugalska    Romunija 
##           2           2           1           1           3 
##    Slovaška   Slovenija     Španija     Švedska       Švica 
##           1           1           4           2           2 
##          UK 
##           4 
## 
## Within cluster sum of squares by cluster:
## [1] 14.457552  9.299226  1.296595  6.565731
##  (between_SS / total_SS =  73.7 %)
## 
## Available components:
## 
##  [1] "cluster"      "centers"      "totss"        "withinss"    
##  [5] "tot.withinss" "betweenss"    "size"         "iter"        
##  [9] "ifault"       "data"         "hclust"
library(factoextra)
fviz_cluster(MetodaVod, 
             palette = "Dark2", 
             repel = FALSE,
             ggtheme = theme_linedraw())

podatki$RazvrstitevVod <- MetodaVod$cluster
print(podatki[c("RazvrstitevWARD", "RazvrstitevVod")])
##             RazvrstitevWARD RazvrstitevVod
## Avstrija                  1              1
## Belgija                   2              2
## Bolgarija                 3              3
## Češka                     1              1
## Ciper                     4              4
## Danska                    2              2
## Estonija                  1              1
## Finska                    2              2
## Francija                  2              2
## Grčija                    4              4
## Hrvaška                   1              1
## Irska                     4              4
## Islandija                 2              2
## Italija                   1              1
## Latvija                   1              1
## Litva                     1              1
## Luksemburg                4              4
## Madžarska                 1              1
## Malta                     4              4
## Nemčija                   1              1
## Nizozemska                2              2
## Norveška                  2              2
## Poljska                   1              1
## Portugalska               1              1
## Romunija                  3              3
## Slovaška                  1              1
## Slovenija                 1              1
## Španija                   4              4
## Švedska                   2              2
## Švica                     1              2
## UK                        4              4
table(podatki$RazvrstitevWARD)
## 
##  1  2  3  4 
## 14  8  2  7
table(podatki$RazvrstitevVod)
## 
##  1  2  3  4 
## 13  9  2  7
table(podatki$RazvrstitevWARD, podatki$RazvrstitevVod)
##    
##      1  2  3  4
##   1 13  1  0  0
##   2  0  8  0  0
##   3  0  0  2  0
##   4  0  0  0  7
Povprečja <- MetodaVod$centers
Slika <- as.data.frame(Povprečja)
Slika$id <- 1:nrow(Slika)

library(tidyr)
## 
## Attaching package: 'tidyr'
## The following object is masked from 'package:magrittr':
## 
##     extract
Slika <- pivot_longer(Slika, cols = c("A", "B", "C", "D"))

Slika$Skupina <- factor(Slika$id, 
                        levels = c(1, 2, 3, 4), 
                        labels = c("1", "2", "3", "4"))

Slika$ImeF <- factor(Slika$name, 
                     levels = c("A", "B", "C", "D"), 
                     labels = c("A", "B", "C","D"))

library(ggplot2)
ggplot(Slika, aes(x=ImeF, y=value)) +
  geom_hline(yintercept=0) +
  theme_linedraw() +
  geom_point(aes(shape=Skupina, col=Skupina), size=3) +
  geom_line((aes(group = id, linetype = Skupina)), size = 1) +
  ylab("Povprečje") +
  xlab("Razvrstitvene spremenljivke")+
  ylim(-2, 3.5)

fit <- aov(cbind(A, B, C, D) ~ as.factor(RazvrstitevVod), 
             data = podatki)

summary(fit)
##  Response A :
##                           Df Sum Sq Mean Sq F value    Pr(>F)    
## as.factor(RazvrstitevVod)  3 482.17 160.722  27.166 2.615e-08 ***
## Residuals                 27 159.74   5.916                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response B :
##                           Df Sum Sq Mean Sq F value    Pr(>F)    
## as.factor(RazvrstitevVod)  3 716.83 238.945  30.877 7.092e-09 ***
## Residuals                 27 208.95   7.739                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response C :
##                           Df Sum Sq Mean Sq F value    Pr(>F)    
## as.factor(RazvrstitevVod)  3 265.17  88.391  16.483 2.758e-06 ***
## Residuals                 27 144.78   5.362                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response D :
##                           Df Sum Sq Mean Sq F value    Pr(>F)    
## as.factor(RazvrstitevVod)  3 587.72 195.905  30.779 7.327e-09 ***
## Residuals                 27 171.85   6.365                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
aggregate(podatki$BDP, 
          by = list(podatki$RazvrstitevVod), 
          FUN = mean)
##   Group.1        x
## 1       1 19701.54
## 2       2 45937.78
## 3       3  7875.00
## 4       4 38447.14
aggregate(podatki$Brezpos, 
          by = list(podatki$RazvrstitevVod), 
          FUN = mean)
##   Group.1        x
## 1       1 5.115385
## 2       2 4.944444
## 3       3 4.000000
## 4       4 7.714286
fit <- aov(cbind(BDP, Brezpos) ~ as.factor(RazvrstitevVod), 
             data = podatki)

summary(fit)
##  Response BDP :
##                           Df     Sum Sq    Mean Sq F value    Pr(>F)
## as.factor(RazvrstitevVod)  3 5124115502 1708038501  7.8725 0.0006244
## Residuals                 27 5857979718  216962212                  
##                              
## as.factor(RazvrstitevVod) ***
## Residuals                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response Brezpos :
##                           Df  Sum Sq Mean Sq F value Pr(>F)
## as.factor(RazvrstitevVod)  3  43.321 14.4402   1.585  0.216
## Residuals                 27 245.988  9.1107
hi_kvadrat <- chisq.test(podatki$RegijaF, as.factor(podatki$RazvrstitevVod))
## Warning in chisq.test(podatki$RegijaF,
## as.factor(podatki$RazvrstitevVod)): Chi-squared approximation may be
## incorrect
hi_kvadrat
## 
##  Pearson's Chi-squared test
## 
## data:  podatki$RegijaF and as.factor(podatki$RazvrstitevVod)
## X-squared = 34.429, df = 9, p-value = 7.51e-05
addmargins(hi_kvadrat$observed) 
##                
## podatki$RegijaF  1  2  3  4 Sum
##             J    2  0  0  4   6
##             Z    2  4  0  3   9
##             V    9  0  2  0  11
##             S    0  5  0  0   5
##             Sum 13  9  2  7  31
addmargins(round(hi_kvadrat$expected, 2)) 
##                
## podatki$RegijaF     1    2    3    4   Sum
##             J    2.52 1.74 0.39 1.35  6.00
##             Z    3.77 2.61 0.58 2.03  8.99
##             V    4.61 3.19 0.71 2.48 10.99
##             S    2.10 1.45 0.32 1.13  5.00
##             Sum 13.00 8.99 2.00 6.99 30.98
round(hi_kvadrat$res, 2) 
##                
## podatki$RegijaF     1     2     3     4
##               J -0.33 -1.32 -0.62  2.27
##               Z -0.91  0.86 -0.76  0.68
##               V  2.04 -1.79  1.53 -1.58
##               S -1.45  2.95 -0.57 -1.06
fisher.test(podatki$RegijaF, as.factor(podatki$RazvrstitevVod))
## 
##  Fisher's Exact Test for Count Data
## 
## data:  podatki$RegijaF and as.factor(podatki$RazvrstitevVod)
## p-value = 5.584e-06
## alternative hypothesis: two.sided
library(ggplot2)
ggplot(podatki, aes(x=RazvrstitevVod, fill=RegijaF)) +
  geom_bar(position="fill", color = "black") +
  ylab("Delež") +
  xlab("Skupina") +
  labs(fill="Evropa") +
  scale_fill_grey(start=0.0, end=0.98) + 
  theme_linedraw()

print(podatki)
##                  Država    A    B    C    D   BDP Brezpos Regija
## Avstrija       Avstrija  3.3 16.1 32.3 23.3 38110     4.3      2
## Belgija         Belgija  1.2 11.6 25.9 30.5 36090     5.3      2
## Bolgarija     Bolgarija 16.9 20.0 30.6 15.8  6630     4.1      3
## Češka             Češka  2.9 28.8 28.2 18.3 18460     2.0      3
## Ciper             Ciper  3.4  9.3 39.3 19.6 25370     6.0      1
## Danska           Danska  2.3 10.8 32.4 30.2 49270     4.9      4
## Estonija       Estonija  3.1 20.1 31.4 22.3 15510     4.5      3
## Finska           Finska  3.4 14.0 26.2 28.8 37150     6.6      4
## Francija       Francija  2.6 10.2 29.1 29.3 33320     8.2      2
## Grčija           Grčija 10.9  9.5 37.5 22.0 17760    16.5      1
## Hrvaška         Hrvaška  6.2 21.0 32.4 22.2 12700     6.1      3
## Irska             Irska  4.5 11.1 36.2 25.6 60130     4.8      2
## Islandija     Islandija  3.5 12.1 33.4 28.5 39160     3.2      4
## Italija         Italija  3.6 16.8 31.0 18.8 27210     9.8      1
## Latvija         Latvija  7.3 15.8 32.8 20.5 12530     6.6      3
## Litva             Litva  6.4 18.0 31.3 22.9 14050     6.4      3
## Luksemburg   Luksemburg  0.8  8.1 37.9 20.7 85030     5.7      2
## Madžarska     Madžarska  4.0 21.2 29.0 21.1 13270     3.4      3
## Malta             Malta  1.4 10.7 35.9 22.5 22730     3.4      1
## Nemčija         Nemčija  1.3 18.5 28.0 25.0 35980     3.2      2
## Nizozemska   Nizozemska  2.1  9.2 30.4 26.4 41980     3.0      2
## Norveška       Norveška  2.3 11.0 27.1 35.9 69490     3.7      4
## Poljska         Poljska  9.2 24.1 27.9 20.3 13020     2.9      3
## Portugalska Portugalska  8.1 17.1 29.5 20.6 18670     6.9      1
## Romunija       Romunija 21.8 21.6 26.5 13.8  9120     3.9      3
## Slovaška       Slovaška  3.0 23.9 30.7 19.9 15890     5.7      3
## Slovenija     Slovenija  6.9 23.2 26.8 18.5 20720     4.7      3
## Španija         Španija  3.9 11.3 34.1 22.1 25200    13.7      1
## Švedska         Švedska  1.9 12.2 25.8 33.6 44180     7.0      4
## Švica             Švica  2.6 14.0 29.3 24.5 62800     2.6      2
## UK                   UK  1.2  9.0 33.6 24.7 32910     3.9      2
##             RegijaF RazvrstitevWARD RazvrstitevVod
## Avstrija          Z               1              1
## Belgija           Z               2              2
## Bolgarija         V               3              3
## Češka             V               1              1
## Ciper             J               4              4
## Danska            S               2              2
## Estonija          V               1              1
## Finska            S               2              2
## Francija          Z               2              2
## Grčija            J               4              4
## Hrvaška           V               1              1
## Irska             Z               4              4
## Islandija         S               2              2
## Italija           J               1              1
## Latvija           V               1              1
## Litva             V               1              1
## Luksemburg        Z               4              4
## Madžarska         V               1              1
## Malta             J               4              4
## Nemčija           Z               1              1
## Nizozemska        Z               2              2
## Norveška          S               2              2
## Poljska           V               1              1
## Portugalska       J               1              1
## Romunija          V               3              3
## Slovaška          V               1              1
## Slovenija         V               1              1
## Španija           J               4              4
## Švedska           S               2              2
## Švica             Z               1              2
## UK                Z               4              4